package com.proyemp.entity.classes;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the programas_clientes database table.
 * 
 */
@Entity
@Table(name="programas_clientes")
public class ProgramasCliente implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="nro_programa")
	private Integer nroPrograma;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_actualizacion")
	private Date fechaActualizacion;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_fin_programa")
	private Date fechaFinPrograma;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_inicio_programa")
	private Date fechaInicioPrograma;

	@Column(name="usuario_modificacion")
	private String usuarioModificacion;

	//bi-directional many-to-one association to BeneficiosPrograma
	@OneToMany(mappedBy="programasCliente")
	private Set<BeneficiosPrograma> beneficiosProgramas;

	//bi-directional many-to-one association to EmpleadosCierranPrograma
	@OneToMany(mappedBy="programasCliente")
	private Set<EmpleadosCierranPrograma> empleadosCierranProgramas;

	//bi-directional many-to-one association to EstadosProgramasHistorico
	@OneToMany(mappedBy="programasCliente")
	private Set<EstadosProgramasHistorico> estadosProgramasHistoricos;

	//bi-directional many-to-one association to GastosPrograma
	@OneToMany(mappedBy="programasCliente")
	private Set<GastosPrograma> gastosProgramas;

	//bi-directional one-to-one association to IngresosPrograma
	@OneToOne(mappedBy="programasCliente")
	private IngresosPrograma ingresosPrograma;

	//bi-directional many-to-one association to MaterialesPrograma
	@OneToMany(mappedBy="programasCliente")
	private Set<MaterialesPrograma> materialesProgramas;

	//bi-directional many-to-one association to ProgramasAliado
	@OneToMany(mappedBy="programasCliente")
	private Set<ProgramasAliado> programasAliados;

	//bi-directional many-to-one association to Cliente
    @ManyToOne
	@JoinColumn(name="id_empresa")
	private Cliente cliente;

	//bi-directional many-to-one association to TiposProgramasTipo
	@OneToMany(mappedBy="programasCliente")
	private Set<TiposProgramasTipo> tiposProgramasTipos;

	//bi-directional many-to-one association to UsosBeneficiosUsuarioPrograma
	@OneToMany(mappedBy="programasCliente")
	private Set<UsosBeneficiosUsuarioPrograma> usosBeneficiosUsuarioProgramas;

	//bi-directional many-to-one association to UsuariosFinalesPrograma
	@OneToMany(mappedBy="programasCliente")
	private Set<UsuariosFinalesPrograma> usuariosFinalesProgramas;

    public ProgramasCliente() {
    }

	public Integer getNroPrograma() {
		return this.nroPrograma;
	}

	public void setNroPrograma(Integer nroPrograma) {
		this.nroPrograma = nroPrograma;
	}

	public Date getFechaActualizacion() {
		return this.fechaActualizacion;
	}

	public void setFechaActualizacion(Date fechaActualizacion) {
		this.fechaActualizacion = fechaActualizacion;
	}

	public Date getFechaFinPrograma() {
		return this.fechaFinPrograma;
	}

	public void setFechaFinPrograma(Date fechaFinPrograma) {
		this.fechaFinPrograma = fechaFinPrograma;
	}

	public Date getFechaInicioPrograma() {
		return this.fechaInicioPrograma;
	}

	public void setFechaInicioPrograma(Date fechaInicioPrograma) {
		this.fechaInicioPrograma = fechaInicioPrograma;
	}

	public String getUsuarioModificacion() {
		return this.usuarioModificacion;
	}

	public void setUsuarioModificacion(String usuarioModificacion) {
		this.usuarioModificacion = usuarioModificacion;
	}

	public Set<BeneficiosPrograma> getBeneficiosProgramas() {
		return this.beneficiosProgramas;
	}

	public void setBeneficiosProgramas(Set<BeneficiosPrograma> beneficiosProgramas) {
		this.beneficiosProgramas = beneficiosProgramas;
	}
	
	public Set<EmpleadosCierranPrograma> getEmpleadosCierranProgramas() {
		return this.empleadosCierranProgramas;
	}

	public void setEmpleadosCierranProgramas(Set<EmpleadosCierranPrograma> empleadosCierranProgramas) {
		this.empleadosCierranProgramas = empleadosCierranProgramas;
	}
	
	public Set<EstadosProgramasHistorico> getEstadosProgramasHistoricos() {
		return this.estadosProgramasHistoricos;
	}

	public void setEstadosProgramasHistoricos(Set<EstadosProgramasHistorico> estadosProgramasHistoricos) {
		this.estadosProgramasHistoricos = estadosProgramasHistoricos;
	}
	
	public Set<GastosPrograma> getGastosProgramas() {
		return this.gastosProgramas;
	}

	public void setGastosProgramas(Set<GastosPrograma> gastosProgramas) {
		this.gastosProgramas = gastosProgramas;
	}
	
	public IngresosPrograma getIngresosPrograma() {
		return this.ingresosPrograma;
	}

	public void setIngresosPrograma(IngresosPrograma ingresosPrograma) {
		this.ingresosPrograma = ingresosPrograma;
	}
	
	public Set<MaterialesPrograma> getMaterialesProgramas() {
		return this.materialesProgramas;
	}

	public void setMaterialesProgramas(Set<MaterialesPrograma> materialesProgramas) {
		this.materialesProgramas = materialesProgramas;
	}
	
	public Set<ProgramasAliado> getProgramasAliados() {
		return this.programasAliados;
	}

	public void setProgramasAliados(Set<ProgramasAliado> programasAliados) {
		this.programasAliados = programasAliados;
	}
	
	public Cliente getCliente() {
		return this.cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	
	public Set<TiposProgramasTipo> getTiposProgramasTipos() {
		return this.tiposProgramasTipos;
	}

	public void setTiposProgramasTipos(Set<TiposProgramasTipo> tiposProgramasTipos) {
		this.tiposProgramasTipos = tiposProgramasTipos;
	}
	
	public Set<UsosBeneficiosUsuarioPrograma> getUsosBeneficiosUsuarioProgramas() {
		return this.usosBeneficiosUsuarioProgramas;
	}

	public void setUsosBeneficiosUsuarioProgramas(Set<UsosBeneficiosUsuarioPrograma> usosBeneficiosUsuarioProgramas) {
		this.usosBeneficiosUsuarioProgramas = usosBeneficiosUsuarioProgramas;
	}
	
	public Set<UsuariosFinalesPrograma> getUsuariosFinalesProgramas() {
		return this.usuariosFinalesProgramas;
	}

	public void setUsuariosFinalesProgramas(Set<UsuariosFinalesPrograma> usuariosFinalesProgramas) {
		this.usuariosFinalesProgramas = usuariosFinalesProgramas;
	}
	
}